package com.tulele.vtool.service;

import com.tulele.vtool.model.ArticleTypeInfo;
import com.tulele.vtool.model.MateriaUserRelateTypeInfo;
import com.tulele.vtool.model.combinedEntity.CombinedArticleTypeAdvertTemplate;

import java.util.List;

public interface IArticleTypeInfoService {

    /**
     * 获取文章类型信息
     * @return
     */
    List<ArticleTypeInfo> getArticleTypeInfo();

    List<ArticleTypeInfo> getArticleTypeInfoItem();

    /**
     * 查询默认广告模板
     * @return 广告内容
     */
    String queryDefaultAdvert();

    /**
     * 根据文章类型名称获取文章类型信息
     * @param articleTypeName
     * @return
     */
    ArticleTypeInfo getArticleTypeInfoByArticleTypeName(String articleTypeName);

    ArticleTypeInfo selectBrandNameAndBrandHeadByTypeId(Integer articleTypeId);

    /**
     * 通过ID获取文章类型信息
     * @param articleTypeIds
     * @return
     */
    List<ArticleTypeInfo> getArticleTypeInfoByIds(List<String> articleTypeIds);

    List<ArticleTypeInfo> selectUserAttentionMaterialType(int userId);

    List<ArticleTypeInfo> selectUserAttentionMaterialTypeItem(int userId);

    void addUserAttentionMaterialTypeAndBrand(MateriaUserRelateTypeInfo materiaUserRelateTypeInfo, List<String> articleTypeIdList);

    /**
     * 通过分类ID查询分类信息
     * @param typeId
     * @return
     */
    String getTypeInfoByTypeId(Integer typeId);

    /**
     * 获取类型默认设置的广告信息
     * @param typeId 类型ID
     * @return
     */
    String getDefaultAdvertInfo(Integer typeId);

    /**
     * 获取用户订阅的文章类型的模板广告
     * @param articleTypeIdList 用户订阅的文章类型
     * @return 模板广告
     */
    List<CombinedArticleTypeAdvertTemplate> getArticleTypeAdvertTemplate(List<Integer> articleTypeIdList);

    /**
     * 根据 ID 获取文章类型信息
     * @param articleTypeId 类型 ID
     * @return 文章类型信息
     */
    ArticleTypeInfo getInfoById(Integer articleTypeId);
}
